Implement per-target fingerprints
authorAlex Crichton <alex@alexcrichton.com>
Tue, 29 Jul 2014 18:27:40 +0000 (11:27 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Sat, 2 Aug 2014 07:16:19 +0000 (00:16 -0700)
commitdd2c5980b4bb7d3cf26a6d6c77c7123155bb87cb
tree5c5d54ab40f35d928765952125fc22687fb02124
parent79768eb0d9496ba2156a839c3a1c0758e51fd5a8
Implement per-target fingerprints

This commit refines the granularity of fingerprints from packages to targets,
building on the existing infrastructure. All invocations of rustc now include
the --dep-info flag which will emit makefile-like dependency information. This
information is then parsed later on to determine if all the files are fresh.

The purpose of this commit is to refine the set of files which indicate that a
target needs to be re-built. Before this commit if you modified a test it would
rebuild the entire library, but after this commit it only rebuilds the relevant
test.

Closes #214
Closes #289
src/cargo/ops/cargo_rustc/context.rs
src/cargo/ops/cargo_rustc/fingerprint.rs
src/cargo/ops/cargo_rustc/mod.rs
src/cargo/util/dependency_queue.rs
tests/test_cargo_compile.rs
tests/test_cargo_cross_compile.rs
tests/test_cargo_freshness.rs [new file with mode: 0644]
tests/tests.rs